package com.txzt.gaea.provide.service;


import com.txzt.base.core.RtnInfo;
import com.txzt.gaea.common.base.service.BaseService;
import com.txzt.gaea.common.page.PageInfoBT;
import com.txzt.gaea.provide.model.FileInfo;
import com.txzt.gaea.provide.vo.FileInfoVo;
import com.txzt.gaea.provide.dto.FileInfoDTO;

import java.util.List;

public interface FileInfoService extends BaseService<FileInfo> {

    /**
     *
     * @param oldList    原有文件list
     * @param newList    新文件list
     * @param projectNo  项目编号
     * @param fileType   文件类型  1 计划  2 项目  3 归档
     * @return boolean
     */
    boolean fileChange(List<FileInfoVo> oldList, List<FileInfoVo> newList, String projectNo, Integer fileType);

    /**
     *
     * @param oldFileJson    原有文件list
     * @param newFileJson    新文件list
     * @param projectNo  项目编号
     * @param fileType   文件类型  1 计划  2 项目  3 归档
     * @return boolean
     */
    void fileChange(String oldFileJson, String newFileJson, String projectNo, Integer fileType);

    boolean fileBizTypeChange(List<FileInfoVo> newList, List<String> noList, Integer bizType);

    boolean deleteFile(List<FileInfoVo> newList);

    boolean deleteOneProjectNo(List<FileInfoVo> newList,String projectNo);

    RtnInfo<PageInfoBT<FileInfo>> pageList(FileInfoDTO fileInfoDTO);

    RtnInfo<?> fileArchiveSave(Long fileId,String projectNo);

    RtnInfo<?> fileArchiveDelete(Long fileId);
}
